﻿#include <Sys\RenderUnit\SysDatagramDisposal_D3D\VERTEXREGISTRYDDD3D9.HPP>

using namespace CxxlMan;
using namespace Cxxl3D;

class CVertexRegistryDDD3D9:public IVertexRegistryDDD3D9
{
  Smart_Ptr<IVertexDD> IVertexDD_Ptr;

  // 登記目前作用中的 IVertexDD
  virtual void cxxlFASTCALL Set(const CxxlMan::Smart_Ptr<IVertexDD> &IVertexDD_Arg)
  {
    IVertexDD_Ptr = IVertexDD_Arg;
  }

  // 取得目前登記作用中的 IVertexDD
  virtual CxxlMan::Smart_Ptr<IVertexDD> cxxlFASTCALL Get()
  {
    return IVertexDD_Ptr;
  }

  virtual bool cxxlFASTCALL Exec(const Smart_Ptr<IRenderDatagramDisposalCenterD3d> &IRenderDatagramDisposalCenter_Arg,
    const Smart_Ptr<IRenderDatagram> &IRenderDatagram_Arg, LPDIRECT3DDEVICE9 pDEVICE9)
  {
    return true;
  }

public:
  // Constructor
  CVertexRegistryDDD3D9()
    :cxxlObject(Spirit_Easy),
    IVertexDD_Ptr(NULL,this)
  {
  }

  // Destructor
  virtual ~CVertexRegistryDDD3D9()
  {}

};

cxxlObject *cxxlFASTCALL New_CVertexRegistryDDD3D9()
{
  return new CVertexRegistryDDD3D9;
}